import { RMIProxyObject } from "../../Engine/RMI/RMIProxyObject";
import { IGroupPrx } from "./IGroupPrx";
import { AMI_IGroup_agree } from "./AMI_IGroup_agree";
import { EGroupMsgType } from "../Public/EGroupMsgType";
import { SEntityId } from "../Public/SEntityId";
import { SerializeStream } from "../../Framework/Serialize/SerializeStream";
import { Outgoing } from "../../Engine/RMI/Outgoing";
import { AMI_IGroup_agreeCross } from "./AMI_IGroup_agreeCross";
import { AMI_IGroup_apply } from "./AMI_IGroup_apply";
import { AMI_IGroup_applyCross } from "./AMI_IGroup_applyCross";
import { AMI_IGroup_applyGuildGroup } from "./AMI_IGroup_applyGuildGroup";
import { AMI_IGroup_createGroup } from "./AMI_IGroup_createGroup";
import { AMI_IGroup_createGroupCross } from "./AMI_IGroup_createGroupCross";
import { AMI_IGroup_createGuildGroup } from "./AMI_IGroup_createGuildGroup";
import { AMI_IGroup_disbandGroup } from "./AMI_IGroup_disbandGroup";
import { AMI_IGroup_disbandGroupCross } from "./AMI_IGroup_disbandGroupCross";
import { AMI_IGroup_disbandGuildGroup } from "./AMI_IGroup_disbandGuildGroup";
import { AMI_IGroup_invite } from "./AMI_IGroup_invite";
import { AMI_IGroup_inviteCross } from "./AMI_IGroup_inviteCross";
import { AMI_IGroup_kickOut } from "./AMI_IGroup_kickOut";
import { AMI_IGroup_kickOutCross } from "./AMI_IGroup_kickOutCross";
import { AMI_IGroup_kickOutGuildGroup } from "./AMI_IGroup_kickOutGuildGroup";
import { AMI_IGroup_left } from "./AMI_IGroup_left";
import { AMI_IGroup_leftCross } from "./AMI_IGroup_leftCross";
import { AMI_IGroup_leftGuildGroup } from "./AMI_IGroup_leftGuildGroup";
import { AMI_IGroup_modifyAllocation } from "./AMI_IGroup_modifyAllocation";
import { AMI_IGroup_modifyAllocationCross } from "./AMI_IGroup_modifyAllocationCross";
import { AMI_IGroup_modifyCaptain } from "./AMI_IGroup_modifyCaptain";
import { AMI_IGroup_modifyCaptainCross } from "./AMI_IGroup_modifyCaptainCross";
import { AMI_IGroup_modifyPostionGuildGroup } from "./AMI_IGroup_modifyPostionGuildGroup";
import { AMI_IGroup_reject } from "./AMI_IGroup_reject";
import { AMI_IGroup_rejectCross } from "./AMI_IGroup_rejectCross";
import { AMI_IGroup_setGroup } from "./AMI_IGroup_setGroup";
import { AMI_IGroup_setGroupCross } from "./AMI_IGroup_setGroupCross";
type int = number;
//class IGroupPrxHelper
    
    export  class IGroupPrxHelper extends RMIProxyObject implements IGroupPrx
    {
        constructor()
        {
            
            super();name = "IGroup";
            return;
        }

        public agree_async(arg1: AMI_IGroup_agree, arg2: EGroupMsgType, arg3: SEntityId, arg4: string): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("agree");
            var loc3=new SerializeStream();
            arg2.__write(loc3);
            arg3.__write(loc3);
            loc3.writeString(arg4);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public agreeCross_async(arg1: AMI_IGroup_agreeCross, arg2: EGroupMsgType, arg3: SEntityId, arg4: string): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("agreeCross");
            var loc3=new SerializeStream();
            arg2.__write(loc3);
            arg3.__write(loc3);
            loc3.writeString(arg4);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public apply_async(arg1: AMI_IGroup_apply, arg2: SEntityId): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("apply");
            var loc3=new SerializeStream();
            arg2.__write(loc3);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public applyCross_async(arg1: AMI_IGroup_applyCross, arg2: SEntityId): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("applyCross");
            var loc3=new SerializeStream();
            arg2.__write(loc3);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public applyGuildGroup_async(arg1: AMI_IGroup_applyGuildGroup, arg2: int, arg3: int): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("applyGuildGroup");
            var loc3;
            (loc3 = new SerializeStream()).writeInt(arg2);
            loc3.writeInt(arg3);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public createGroup_async(arg1: AMI_IGroup_createGroup, arg2: Boolean, arg3: Boolean): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("createGroup");
            var loc3;
            (loc3 = new SerializeStream()).writeBool(arg2);
            loc3.writeBool(arg3);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public createGroupCross_async(arg1: AMI_IGroup_createGroupCross, arg2: Boolean, arg3: Boolean): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("createGroupCross");
            var loc3;
            (loc3 = new SerializeStream()).writeBool(arg2);
            loc3.writeBool(arg3);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public createGuildGroup_async(arg1: AMI_IGroup_createGuildGroup, arg2: int): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("createGuildGroup");
            var loc3;
            (loc3 = new SerializeStream()).writeInt(arg2);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public disbandGroup_async(arg1: AMI_IGroup_disbandGroup): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("disbandGroup");
            var loc3=new SerializeStream();
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public disbandGroupCross_async(arg1: AMI_IGroup_disbandGroupCross): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("disbandGroupCross");
            var loc3=new SerializeStream();
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public disbandGuildGroup_async(arg1: AMI_IGroup_disbandGuildGroup, arg2: int): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("disbandGuildGroup");
            var loc3;
            (loc3 = new SerializeStream()).writeInt(arg2);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public invite_async(arg1: AMI_IGroup_invite, arg2: SEntityId): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("invite");
            var loc3=new SerializeStream();
            arg2.__write(loc3);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public inviteCross_async(arg1: AMI_IGroup_inviteCross, arg2: SEntityId): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("inviteCross");
            var loc3=new SerializeStream();
            arg2.__write(loc3);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public kickOut_async(arg1: AMI_IGroup_kickOut, arg2: SEntityId): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("kickOut");
            var loc3=new SerializeStream();
            arg2.__write(loc3);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public kickOutCross_async(arg1: AMI_IGroup_kickOutCross, arg2: SEntityId): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("kickOutCross");
            var loc3=new SerializeStream();
            arg2.__write(loc3);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public kickOutGuildGroup_async(arg1: AMI_IGroup_kickOutGuildGroup, arg2: int, arg3: SEntityId): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("kickOutGuildGroup");
            var loc3;
            (loc3 = new SerializeStream()).writeInt(arg2);
            arg3.__write(loc3);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public left_async(arg1: AMI_IGroup_left): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("left");
            var loc3=new SerializeStream();
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public leftCross_async(arg1: AMI_IGroup_leftCross): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("leftCross");
            var loc3=new SerializeStream();
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public leftGuildGroup_async(arg1: AMI_IGroup_leftGuildGroup): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("leftGuildGroup");
            var loc3=new SerializeStream();
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public modifyAllocation_async(arg1: AMI_IGroup_modifyAllocation, arg2: int): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("modifyAllocation");
            var loc3;
            (loc3 = new SerializeStream()).writeInt(arg2);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public modifyAllocationCross_async(arg1: AMI_IGroup_modifyAllocationCross, arg2: int): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("modifyAllocationCross");
            var loc3;
            (loc3 = new SerializeStream()).writeInt(arg2);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public modifyCaptain_async(arg1: AMI_IGroup_modifyCaptain, arg2: SEntityId): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("modifyCaptain");
            var loc3=new SerializeStream();
            arg2.__write(loc3);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public modifyCaptainCross_async(arg1: AMI_IGroup_modifyCaptainCross, arg2: SEntityId): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("modifyCaptainCross");
            var loc3=new SerializeStream();
            arg2.__write(loc3);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public modifyPostionGuildGroup_async(arg1: AMI_IGroup_modifyPostionGuildGroup, arg2: int, arg3: SEntityId, arg4: int): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("modifyPostionGuildGroup");
            var loc3;
            (loc3 = new SerializeStream()).writeInt(arg2);
            arg3.__write(loc3);
            loc3.writeInt(arg4);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public reject_async(arg1: AMI_IGroup_reject, arg2: EGroupMsgType, arg3: SEntityId, arg4: string): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("reject");
            var loc3=new SerializeStream();
            arg2.__write(loc3);
            arg3.__write(loc3);
            loc3.writeString(arg4);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public rejectCross_async(arg1: AMI_IGroup_rejectCross, arg2: EGroupMsgType, arg3: SEntityId, arg4: string): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("rejectCross");
            var loc3=new SerializeStream();
            arg2.__write(loc3);
            arg3.__write(loc3);
            loc3.writeString(arg4);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public setGroup_async(arg1: AMI_IGroup_setGroup, arg2: Boolean, arg3: Boolean): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("setGroup");
            var loc3;
            (loc3 = new SerializeStream()).writeBool(arg2);
            loc3.writeBool(arg3);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public setGroupCross_async(arg1: AMI_IGroup_setGroupCross, arg2: Boolean, arg3: Boolean): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("setGroupCross");
            var loc3;
            (loc3 = new SerializeStream()).writeBool(arg2);
            loc3.writeBool(arg3);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public static /* const */NAME: string="Message.Game.IGroup";
    }
